package org.example.two;

import java.util.Scanner;

public abstract class Example {

    /**
     * 算法实现方法
     * @param a
     */
    public abstract void sort(Comparable[] a);

    /**
     * 两个数据比较
     * @param v
     * @param w
     * @return v>w 返回false
     */
    public  boolean les(Comparable v,Comparable w){
        return v.compareTo(w)<0;
    }

    /**
     * 两个数据交换
     * @param a
     * @param i
     * @param j
     */
    public void exch(Comparable[] a ,int i , int j){
        Comparable t = a[i];
        a[i]=a[j];
        a[j]=t;
    }

    /**
     * 打印数组
     * @param a
     */
    public void show(Comparable[] a){
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i]+" ");
        }
        System.out.println();
    }

    /**
     * 测试数组是否有序
     * @param a
     * @return
     */
    public  boolean isSorted(Comparable[] a){
        for (int i = 0; i < a.length; i++) {
            if (les(a[i],a[i-1])) {
                return false;
            }
        }
        return true;
    }



}
